import tensorflow as tf
import keras
import editdistance

# token_id = tf.constant([[4, 4, 4, 4, 0, 0], [3, 3, 3, 0, 0, 0], [2, 2, 0, 0, 0, 0]])
# token_id = tf.cast(token_id, tf.float32)
# id = tf.ones(token_id.shape, dtype=tf.float32)
# print(id * token_id)
dict_test = {"rows": [["2009年7月-2010年6月", 168212.0, 1173.0, 40.0, 20056.0, "None"],
                      ["2010年7月-2011年6月", 237405.0, 1040.0, 21.0, 24897.0, 24.0],
                      ["2011年7月-2012年6月", 199533.0, 910.0, 6.0, 18479.0, -26.0],
                      ["2012年7月-2013年6月", 244512.0, 1037.0, 12.0, 25750.0, 39.0],
                      ["2013年7月-2014年6月", 250637.0, 1260.0, 15.0, 32061.0, 25.0],
                      ["2014年7月-2015年6月", 150515.0, 1246.0, 9.0, 18885.0, -41.0],
                      ["2015年7月-2016年6月", 155643.0, 1567.0, 28.0, 24738.0, 31.0],
                      ["2016年7月-2017年6月", 151707.0, 2202.0, 41.0, 33542.0, 36.0],
                      ["2017年7月-2018年6月", 189395.0, 2368.0, 23.0, 44854.0, 34.0],
                      ["2018年7月-2019年6月E", 198865.0, 2113.0, "None", 42020.0, -6.0],
                      ["2018年7月-2018年11月", 81564.0, 2113.0, 8.0, 17261.0, "None"]],
             "name": "Table_43ad6bdc1d7111e988a6f40f24344a08",
             "title": "表3：300城市土地出让情况预测 ",
             "header": ["300城市土地出让", "规划建筑面积(万㎡)", "成交楼面均价(元/㎡)", "平均溢价率(%)", "土地出让金(亿元)", "同比"],
             "common": "数据来源：中国指数研究院，东吴证券研究所 ",
             "id": "43ad6bdc1d7111e988a6f40f24344a08",
             "types": ["text", "real", "real", "real", "real", "real"]
             }
# target = "2015年7月-2016年6月"
# t = ["2015年7月-2016年6月", 155643.0, 1567.0, 28.0, 24738.0, 31.0]
# print(dict_test.get("rows"))
# print([editdistance.eval(target, str(t1)) for t in dict_test.get("rows") for t1 in t])
# print([editdistance.eval(target, str(x)) for x in t])

# x_for_header [] 6*3    header_mask  [1, 1, 1, 1, 0, 0]
# x_for_header = tf.constant([[0.1, 0.6, 0.3], [0.1, 0.7, 0.2],
#                             [0.4, 0.3, 0.3], [0.6, 0.1, 0.3],
#                             [0.1, 0.6, 0.3], [0.1, 0.6, 0.3]])
# header_mask = tf.constant([1, 1, 1, 1, 0, 0])
# x_for_header_softmax = tf.nn.softmax(x_for_header)
# print(x_for_header_softmax)
# print(1-header_mask)
# # print(tf.nn.softmax(x_for_header - (1-header_mask) * 10))
# print(x_for_header - 10)
# print(tf.nn.softmax(x_for_header - 10))


# (4, 160, 160, 256) ->  (4, 5, 160, 256)
# (4, 4, 4, 4) -> (4, 1, 4, 4)
